package com.ruoyi.system.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.baomidou.mybatisplus.annotation.*;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 项目进度对象 sys_project_schedule
 * 
 * @author zhaonz
 * @date 2023-06-02
 */
@TableName("sys_project_schedule")
public class ProjectSchedule extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 进度ID */
    @TableId(type = IdType.ASSIGN_ID)
    @JsonSerialize(using = ToStringSerializer.class)
    private Long scheduleId;

    /** 项目ID */
    @Excel(name = "项目ID")
    private Long projectId;

    /** 排序 */
    @TableField(exist = false)
    private Long dictSort;

    /** 进度名称 */
    @TableField(exist = false)
    private String dictLabel;

    /** 进度状态 */
    @Excel(name = "进度状态")
    private String state;

    /** 项目进度 */
    @Excel(name = "项目进度")
    private String projectSchedule;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date auditTime;

    /** 审核结果: 0:拒绝,1:同意 */
    @Excel(name = "审核结果: 0:拒绝,1:同意")
    private Integer findingOfAudit;

    /** 相关文档: 0:不带文件,1:包含相关文件 */
    @Excel(name = "相关文档: 0:不带文件,1:包含相关文件")
    private Integer isWithFiles;

    @TableField(exist = false)
    private List<ProjectFile> projectFiles;

    public Long getScheduleId() {
        return scheduleId;
    }

    public ProjectSchedule setScheduleId(Long scheduleId) {
        this.scheduleId = scheduleId;
        return this;
    }

    public Long getProjectId() {
        return projectId;
    }

    public ProjectSchedule setProjectId(Long projectId) {
        this.projectId = projectId;
        return this;
    }

    public Long getDictSort() {
        return dictSort;
    }

    public ProjectSchedule setDictSort(Long dictSort) {
        this.dictSort = dictSort;
        return this;
    }

    public String getDictLabel() {
        return dictLabel;
    }

    public ProjectSchedule setDictLabel(String dictLabel) {
        this.dictLabel = dictLabel;
        return this;
    }

    public String getState() {
        return state;
    }

    public ProjectSchedule setState(String state) {
        this.state = state;
        return this;
    }

    public String getProjectSchedule() {
        return projectSchedule;
    }

    public ProjectSchedule setProjectSchedule(String projectSchedule) {
        this.projectSchedule = projectSchedule;
        return this;
    }

    public Date getAuditTime() {
        return auditTime;
    }

    public ProjectSchedule setAuditTime(Date auditTime) {
        this.auditTime = auditTime;
        return this;
    }

    public Integer getFindingOfAudit() {
        return findingOfAudit;
    }

    public ProjectSchedule setFindingOfAudit(Integer findingOfAudit) {
        this.findingOfAudit = findingOfAudit;
        return this;
    }

    public Integer getIsWithFiles() {
        return isWithFiles;
    }

    public ProjectSchedule setIsWithFiles(Integer isWithFiles) {
        this.isWithFiles = isWithFiles;
        return this;
    }

    public List<ProjectFile> getProjectFiles() {
        return projectFiles;
    }

    public ProjectSchedule setProjectFiles(List<ProjectFile> projectFiles) {
        this.projectFiles = projectFiles;
        return this;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("scheduleId", getScheduleId())
            .append("projectId", getProjectId())
            .append("projectSchedule", getProjectSchedule())
            .append("auditTime", getAuditTime())
            .append("findingOfAudit", getFindingOfAudit())
            .append("isWithFiles", getIsWithFiles())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
